λͺ¨λ¬ λ° λΉλͺ¨λ¬ μ°½μ μ κ·Όμ±μ μ€μ μ λ λνμμ κ΄λ¦¬ μ’ ν© κ°μ΄λλ‘, μ μΈκ³ μ¬μ©μμκ² ν¬μ©μ μΈ κ²½νμ 보μ₯ν©λλ€.
λνμμ κ΄λ¦¬: λͺ¨λ¬ λ° λΉλͺ¨λ¬ μ°½μ μ κ·Όμ± λ³΄μ₯
μ¬μ©μ μΈν°νμ΄μ€(UI) λμμΈ μμμμ λνμμλ μ¬μ©μμ μνΈμμ©νκ³ , μ 보λ₯Ό μ 곡νκ±°λ, μ λ ₯μ μμ²νλ λ° μ€μν μν μ ν©λλ€. μ΄λ¬ν λνμμλ λͺ¨λ¬ λλ λΉλͺ¨λ¬ μ°½μΌλ‘ λνλ μ μμΌλ©°, κ°κ° κ³ μ ν μ κ·Όμ± κ³ λ € μ¬νμ μ μν©λλ€. μ΄ κ°μ΄λλ μΉ μ½ν μΈ μ κ·Όμ± κ°μ΄λλΌμΈ(WCAG)κ³Ό κ°μ ν립λ νμ€μ μ€μνκ³ μ κ·Ό κ°λ₯ν λ¦¬μΉ μΈν°λ· μ ν리μΌμ΄μ (ARIA) μμ±μ νμ©νμ¬ λͺ¨λ μ¬μ©μμ λ₯λ ₯μ κ΄κ³μμ΄ μ κ·Όμ±μ 보μ₯νλ λ° μ€μ μ λ λνμμ κ΄λ¦¬μ 볡μ‘μ±μ νꡬν©λλ€.
λͺ¨λ¬ λ° λΉλͺ¨λ¬ λνμμ μ΄ν΄νκΈ°
μ κ·Όμ± κ³ λ € μ¬νμ μ΄ν΄λ³΄κΈ° μ μ λͺ¨λ¬ λ° λΉλͺ¨λ¬ λνμμκ° λ¬΄μμ μλ―Ένλμ§ μ μνλ κ²μ΄ μ€μν©λλ€:
- λͺ¨λ¬ λνμμ: λͺ¨λ¬ μ°½μ΄λΌκ³ λ νλ λͺ¨λ¬ λνμμλ μ£Ό μ°½μ λΉνμ±ννμ§λ§ λͺ¨λ¬ μ°½μ μμ μ°½μΌλ‘ κ³μ νμνλ λͺ¨λλ₯Ό λ§λλ UI μμμ λλ€. μ¬μ©μλ λͺ¨λ¬ λνμμμ μνΈμμ©ν΄μΌ νλ©° μΌλ°μ μΌλ‘ μ£Ό μ ν리μΌμ΄μ μ°½μΌλ‘ λμκ°κΈ° μ μ (μ: νμΈ λ²νΌ λλ "X" μμ΄μ½ ν΄λ¦) λ«μμΌ ν©λλ€. μΌλ°μ μΈ μλ‘λ κ²½κ³ μμ, νμΈ ν둬ννΈ, μ€μ ν¨λ λ±μ΄ μμ΅λλ€.
- λΉλͺ¨λ¬ λνμμ: λ°λλ‘ λΉλͺ¨λ¬ λνμμλ μ¬μ©μκ° λνμμμ μ£Ό μ ν리μΌμ΄μ μ°½ λͺ¨λμ λμμ μνΈμμ©ν μ μλλ‘ ν©λλ€. λνμμλ μ ν리μΌμ΄μ μ λ€λ₯Έ λΆλΆμ λν μ κ·Όμ μ°¨λ¨νμ§ μκ³ μ΄λ € μμ΅λλ€. μλ‘λ κ·Έλν½ νΈμ§ μννΈμ¨μ΄μ λꡬ νλ νΈλ λ©μμ§ μ ν리μΌμ΄μ μ μ±ν μ°½μ΄ μμ΅λλ€.
λνμμμ μ κ·Όμ± κ³ λ € μ¬ν
UI λμμΈμμ μ κ·Όμ±μ κ°μ₯ μ€μν©λλ€. λνμμκ° μ κ·Ό κ°λ₯νλ€λ κ²μ μ₯μ κ° μλ μ¬μ©μλ₯Ό ν¬ν¨ν λͺ¨λ μ¬μ©μκ° ν¨κ³Όμ μΌλ‘ μ¬μ©ν μ μμμ μλ―Έν©λλ€. μ¬κΈ°μλ λ€μκ³Ό κ°μ λ€μν κ³ λ € μ¬νμ ν΄κ²°νλ κ²μ΄ ν¬ν¨λ©λλ€:
- ν€λ³΄λ νμ: ν€λ³΄λ νμμ μμ‘΄νλ μ¬μ©μλ λνμμλ‘ μ½κ² μ΄λνκ³ , λνμμ λ΄μμ νμνκ³ , λνμμ λ°μΌλ‘ λκ° μ μμ΄μΌ ν©λλ€.
- μ€ν¬λ¦° 리λ νΈνμ±: μ€ν¬λ¦° 리λλ λνμμμ λͺ©μ κ³Ό λ΄μ©, κ·Έλ¦¬κ³ κ·Έ μμ λͺ¨λ μνΈμμ© μμλ₯Ό μ ννκ² μλ €μ£Όμ΄μΌ ν©λλ€.
- ν¬μ»€μ€ κ΄λ¦¬: μ μ ν ν¬μ»€μ€ κ΄λ¦¬λ λνμμκ° μ΄λ¦΄ λ ν€λ³΄λ ν¬μ»€μ€κ° μ μ νκ² λ°°μΉλκ³ , λνμμ λ΄μμ μ΄λνλ©°, λνμμκ° λ«ν λ μλ μμλ‘ λμκ°λλ‘ λ³΄μ₯ν©λλ€.
- μκ°μ λͺ νμ±: λνμμλ ν μ€νΈμ λ°°κ²½μ κ°μ μΆ©λΆν λλΉλ₯Ό κ°μ ΈμΌ νλ©°, μκ°μ λ μ΄μμμ λͺ ννκ³ μ΄ν΄νκΈ° μ¬μμΌ ν©λλ€.
- ν°μΉ λμ ν¬κΈ°: ν°μΉ κΈ°λ° μΈν°νμ΄μ€μ κ²½μ°, λνμμ λ΄μ μνΈμμ© μμλ μΆ©λΆν ν¬κΈ°μ ν°μΉ λμμ κ°μ ΈμΌ ν©λλ€.
- μΈμ§μ μ κ·Όμ±: λνμμ λ΄μ μΈμ΄μ λ΄μ©μ λͺ ννκ³ , κ°κ²°νλ©°, μ΄ν΄νκΈ° μ¬μ μΈμ§μ λΆλ΄μ μ΅μνν΄μΌ ν©λλ€.
λνμμ μ κ·Όμ±μ μν ARIA μμ±
ARIA(μ κ·Ό κ°λ₯ν λ¦¬μΉ μΈν°λ· μ ν리μΌμ΄μ ) μμ±μ μ€ν¬λ¦° 리λμ κ°μ 보쑰 κΈ°μ μ μλ―Έλ‘ μ μ 보λ₯Ό μ 곡νμ¬ UI μμλ₯Ό λ μ ννκ² ν΄μνκ³ μ μν μ μλλ‘ ν©λλ€. λνμμ μ κ·Όμ±μ μν μ£Όμ ARIA μμ±μ λ€μκ³Ό κ°μ΅λλ€:
- `role="dialog"` λλ `role="alertdialog"`: μ΄ μμ±μ μμλ₯Ό λνμμλ‘ μλ³ν©λλ€. `alertdialog`λ μ€μνκ±°λ κΈ΄κΈν μ 보λ₯Ό μ λ¬νλ λνμμμ μ¬μ©ν΄μΌ ν©λλ€.
- `aria-labelledby="[ID of heading]"`: μ΄ μμ±μ λνμμλ₯Ό κ·Έ λͺ©μ μ μ€λͺ νλ μ λͺ© μμμ μ°κ²°ν©λλ€.
- `aria-describedby="[ID of description]"`: μ΄ μμ±μ λνμμλ₯Ό μΆκ°μ μΈ λ§₯λ½μ΄λ μ§μΉ¨μ μ 곡νλ μ€λͺ μμμ μ°κ²°ν©λλ€.
- `aria-modal="true"`: μ΄ μμ±μ λνμμκ° λͺ¨λ¬μμ λνλ΄μ΄ λνμμ μΈλΆ μμμμ μνΈμμ©μ λ°©μ§ν©λλ€. 보쑰 κΈ°μ μ λͺ¨λ¬ λμμ μ λ¬νλ λ° μ€μν©λλ€.
- `tabindex="0"`: λνμμ λ΄ μμμ `tabindex="0"`μ μ€μ νλ©΄ ν€λ³΄λ νμμ ν΅ν΄ ν¬μ»€μ€λ₯Ό λ°μ μ μμ΅λλ€.
λͺ¨λ¬ λνμμ μ κ·Όμ±: λͺ¨λ² μ¬λ‘
λͺ¨λ¬ λνμμλ μ°¨λ¨ νΉμ± λλ¬Έμ λ νΉν μ κ·Όμ± κ³Όμ λ₯Ό μ μν©λλ€. λͺ¨λ¬ λνμμ μ κ·Όμ±μ 보μ₯νκΈ° μν λͺ κ°μ§ λͺ¨λ² μ¬λ‘λ λ€μκ³Ό κ°μ΅λλ€:
1. μ μ ν ARIA μμ±
μμ μΈκΈνλ―μ΄, `role="dialog"`(λλ κΈ΄κΈ λ©μμ§μ κ²½μ° `role="alertdialog"`), `aria-labelledby`, `aria-describedby`, κ·Έλ¦¬κ³ `aria-modal="true"`λ₯Ό μ¬μ©νλ κ²μ λνμμμ κ·Έ λͺ©μ μ 보쑰 κΈ°μ μ μλ³μν€λ λ° μ€μν©λλ€.
μμ:
<div role="dialog" aria-labelledby="confirmation-heading" aria-modal="true">
<h2 id="confirmation-heading">Confirm Delete</h2>
<p>Are you sure you want to delete this item? This action cannot be undone.</p>
<button>Confirm</button>
<button>Cancel</button>
</div>
2. ν¬μ»€μ€ κ΄λ¦¬
λͺ¨λ¬ λνμμκ° μ΄λ¦¬λ©΄ ν€λ³΄λ ν¬μ»€μ€λ μ¦μ λνμμ λ΄μ 첫 λ²μ§Έ μνΈμμ© μμ(μ: 첫 λ²μ§Έ λ²νΌ λλ μ λ ₯ νλ)λ‘ μ΄λν΄μΌ ν©λλ€. λνμμκ° λ«νλ©΄ ν¬μ»€μ€λ λνμμλ₯Ό νΈλ¦¬κ±°ν μμλ‘ λμκ°μΌ ν©λλ€.
ꡬν μ κ³ λ €μ¬ν:
- JavaScript: JavaScriptλ₯Ό μ¬μ©νμ¬ λνμμκ° μ΄λ¦¬κ³ λ«ν λ μ μ ν μμμ νλ‘κ·Έλλ° λ°©μμΌλ‘ ν¬μ»€μ€λ₯Ό μ€μ ν©λλ€.
- ν¬μ»€μ€ νΈλν: ν¬μ»€μ€ νΈλνμ ꡬννμ¬ λνμμκ° μ΄λ € μλ λμ ν€λ³΄λ ν¬μ»€μ€κ° λνμμ λ΄μ 머무λ₯΄λλ‘ ν©λλ€. μ΄λ μ¬μ©μκ° μ€μλ‘ λνμμ λ°μΌλ‘ ννμ¬ μμΉλ₯Ό μλ κ²μ λ°©μ§ν©λλ€. μ΄λ μ’ μ’ JavaScriptλ₯Ό μ¬μ©νμ¬ ν ν€ λλ¦μ μμ νκ³ νμν κ²½μ° ν¬μ»€μ€λ₯Ό λνμμμ μμ λλ λμΌλ‘ μνμμΌ λ¬μ±λ©λλ€.
μμ (κ°λ μ JavaScript):
function openModal(modalId) {
const modal = document.getElementById(modalId);
modal.style.display = "block";
const firstFocusableElement = modal.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
firstFocusableElement.focus();
}
function closeModal(modalId, triggeringElementId) {
const modal = document.getElementById(modalId);
modal.style.display = "none";
const triggeringElement = document.getElementById(triggeringElementId);
triggeringElement.focus();
}
3. ν€λ³΄λ μ κ·Όμ±
λνμμ λ΄μ λͺ¨λ μνΈμμ© μμκ° ν€λ³΄λλ₯Ό μ¬μ©νμ¬ μ κ·Όνκ³ νμ±νν μ μλμ§ νμΈν©λλ€. μ¬κΈ°μλ λ²νΌ, λ§ν¬, μμ νλ λ° λͺ¨λ μ¬μ©μ μ§μ 컨νΈλ‘€μ΄ ν¬ν¨λ©λλ€.
κ³ λ €μ¬ν:
- ν μμ: ν μμλ λ Όλ¦¬μ μ΄κ³ μ§κ΄μ μ΄μ΄μΌ ν©λλ€. μΌλ°μ μΌλ‘ ν μμλ λνμμμ μκ°μ λ μ΄μμμ λ°λΌμΌ ν©λλ€.
- ν€λ³΄λ λ¨μΆν€: λνμμ λ΄μ μΌλ°μ μΈ μμ μ λν ν€λ³΄λ λ¨μΆν€λ₯Ό μ 곡ν©λλ€(μ: Esc ν€λ₯Ό μ¬μ©νμ¬ λνμμλ₯Ό λ«κ±°λ Enter ν€λ₯Ό μ¬μ©νμ¬ μμ μ νμΈ).
4. μκ° λμμΈ
λͺ¨λ¬ λνμμμ μκ° λμμΈμ μ£Ό μ ν리μΌμ΄μ μ°½κ³Ό λΆλ¦¬λμ΄ μμμ λͺ ννκ² λνλ΄μΌ ν©λλ€. μ΄λ λμ‘°μ μΈ λ°°κ²½μ, λλ ·ν ν λ리 λλ κ·Έλ¦Όμ ν¨κ³Όλ₯Ό μ¬μ©νμ¬ λ¬μ±ν μ μμ΅λλ€. κ°λ μ±μ μν΄ ν μ€νΈμ λ°°κ²½ κ°μ μΆ©λΆν μμ λλΉλ₯Ό 보μ₯ν©λλ€.
5. μλ§¨ν± HTML
κ°λ₯ν κ²½μ° μλ§¨ν± HTML μμλ₯Ό μ¬μ©ν©λλ€. μλ₯Ό λ€μ΄, λ²νΌμλ <button> μμλ₯Ό, μμ μ λ ₯ λ μ΄λΈμλ <label> μμλ₯Ό, μ λͺ©μλ <h2> λλ <h3> μμλ₯Ό μ¬μ©ν©λλ€.
6. κ΅μ ν λ° νμ§ν
λνμμλ₯Ό μ€κ³νκ³ κ΅¬νν λ λ€μν λ¬Ένμ λ°°κ²½μ κ°μ§ μ¬μ©μμ μꡬλ₯Ό κ³ λ €ν©λλ€. μ¬κΈ°μλ λνμμ μ½ν μΈ μ νμ§νλ λ²μ μ μ 곡νκ³ λνμμ λ μ΄μμμ΄ λ€λ₯Έ ν μ€νΈ λ°©ν₯(μ: μ€λ₯Έμͺ½μμ μΌμͺ½μΌλ‘ μ°λ μΈμ΄)μ μ μ νκ² μ μνλλ‘ λ³΄μ₯νλ κ²μ΄ ν¬ν¨λ©λλ€.
μμ: μ¬μ©μμ κ³μ μμ λ₯Ό μμ²νλ νμΈ λνμμλ κ° λμ μΈμ΄μ λν΄ μ ννκ³ λ¬Ένμ μΌλ‘ μ μ νκ² λ²μλμ΄μΌ ν©λλ€. μ€λ₯Έμͺ½μμ μΌμͺ½μΌλ‘ μ°λ μΈμ΄μ κ²½μ° λ μ΄μμ μ‘°μ μ΄ νμν μλ μμ΅λλ€.
λΉλͺ¨λ¬ λνμμ μ κ·Όμ±: λͺ¨λ² μ¬λ‘
λΉλͺ¨λ¬ λνμμλ λͺ¨λ¬ λνμμλ³΄λ€ λ λ°©ν΄κ° λμ§λ§ μ¬μ ν μ κ·Όμ±μ λν μΈμ¬ν μ£Όμκ° νμν©λλ€. λ€μμ λͺ κ°μ§ λͺ¨λ² μ¬λ‘μ λλ€:
1. λͺ νν μκ°μ ꡬλ³
νΌλμ νΌνκΈ° μν΄ λΉλͺ¨λ¬ λνμμκ° μ£Ό μ ν리μΌμ΄μ μ°½κ³Ό μκ°μ μΌλ‘ ꡬλ³λλλ‘ ν©λλ€. μ΄λ ν λ리, λ°°κ²½μ λλ λ―Έλ¬ν κ·Έλ¦Όμλ₯Ό μ¬μ©νμ¬ λ¬μ±ν μ μμ΅λλ€.
2. ν¬μ»€μ€ κ΄λ¦¬
λΉλͺ¨λ¬ λνμμλ μ£Ό μ°½κ³Όμ μνΈμμ©μ μ°¨λ¨νμ§ μμ§λ§, μ μ ν ν¬μ»€μ€ κ΄λ¦¬λ μ¬μ ν μ€μν©λλ€. λνμμκ° μ΄λ¦¬λ©΄ ν¬μ»€μ€λ λνμμ λ΄μ 첫 λ²μ§Έ μνΈμμ© μμλ‘ μ΄λν΄μΌ ν©λλ€. μ¬μ©μλ ν€λ³΄λ νμμ μ¬μ©νμ¬ λνμμμ μ£Ό μ°½ μ¬μ΄λ₯Ό μ½κ² μ νν μ μμ΄μΌ ν©λλ€.
3. ARIA μμ±
`role="dialog"`, `aria-labelledby`, `aria-describedby`λ₯Ό μ¬μ©νμ¬ λ³΄μ‘° κΈ°μ μ λνμμμ λν μλ―Έλ‘ μ μ 보λ₯Ό μ 곡ν©λλ€. `aria-modal="false"`λ₯Ό μ¬μ©νκ±°λ `aria-modal`μ μλ΅νλ κ²μ λΉλͺ¨λ¬ λνμμλ₯Ό λͺ¨λ¬ λνμμμ ꡬλ³νλ λ° μ€μν©λλ€.
μμ:
<div role="dialog" aria-labelledby="font-settings-heading">
<h2 id="font-settings-heading">Font Settings</h2>
<label for="font-size">Font Size:</label>
<input type="number" id="font-size" value="12">
<button>Apply</button>
</div>
4. ν€λ³΄λ μ κ·Όμ±
λνμμ λ΄μ λͺ¨λ μνΈμμ© μμκ° ν€λ³΄λλ₯Ό μ¬μ©νμ¬ μ κ·Όνκ³ νμ±νν μ μλμ§ νμΈν©λλ€. ν μμλ λ Όλ¦¬μ μ΄κ³ μ§κ΄μ μ΄μ΄μΌ νλ©° μ¬μ©μκ° λνμμμ μ£Ό μ°½ μ¬μ΄λ₯Ό μ½κ² νμν μ μλλ‘ ν΄μΌ ν©λλ€.
5. κ²ΉμΉ¨ λ°©μ§
λΉλͺ¨λ¬ λνμμκ° μ£Ό μ ν리μΌμ΄μ μ°½μ μ€μν μ½ν μΈ λ₯Ό κ°λ¦¬λ λ°©μμΌλ‘ λ°°μΉνμ§ μλλ‘ ν©λλ€. λνμμλ λͺ ννκ³ μ κ·Ό κ°λ₯ν μμΉμ λ°°μΉλμ΄μΌ ν©λλ€.
6. μΈμ λ° μν΅
λΉλͺ¨λ¬ λνμμκ° μ΄λ¦΄ λ, νΉν λ°°κ²½μμ μ΄λ € μ¦μ λμ λμ§ μμ μ μλ κ²½μ°, μ¬μ©μμκ² μλ‘μ΄ λνμμκ° λνλ¬μμ μκ°μ μΌλ‘ λλ μ²κ°μ μΌλ‘(ARIA λΌμ΄λΈ 리μ μ μ¬μ©νμ¬) μ리λ κ²μ΄ λμμ΄ λ©λλ€.
μ€μ©μ μΈ μμ λ° μ½λ μ€λν«
μ΄λ¬ν κ°λ μ μ€λͺ νκΈ° μν΄ λͺ κ°μ§ μ€μ©μ μΈ μμ μ μ½λ μ€λν«μ μ΄ν΄λ³΄κ² μ΅λλ€.
μμ 1: λͺ¨λ¬ νμΈ λνμμ
<button id="delete-button" onclick="openModal('delete-confirmation-modal', 'delete-button')">Delete Item</button>
<div id="delete-confirmation-modal" role="dialog" aria-labelledby="delete-heading" aria-modal="true" style="display:none;">
<h2 id="delete-heading">Confirm Delete</h2>
<p>Are you sure you want to delete this item? This action cannot be undone.</p>
<button onclick="//Delete item logic; closeModal('delete-confirmation-modal', 'delete-button')">Confirm</button>
<button onclick="closeModal('delete-confirmation-modal', 'delete-button')">Cancel</button>
</div>
μμ 2: λΉλͺ¨λ¬ κΈκΌ΄ μ€μ λνμμ
<button id="font-settings-button" onclick="openModal('font-settings-dialog', 'font-settings-button')">Font Settings</button>
<div id="font-settings-dialog" role="dialog" aria-labelledby="font-settings-heading" style="display:none;">
<h2 id="font-settings-heading">Font Settings</h2>
<label for="font-size">Font Size:</label>
<input type="number" id="font-size" value="12"><br>
<label for="font-family">Font Family:</label>
<select id="font-family">
<option value="Arial">Arial</option>
<option value="Verdana">Verdana</option>
<option value="Times New Roman">Times New Roman</option>
</select><br>
<button onclick="//Apply font settings logic">Apply</button>
</div>
ν μ€νΈ λ° κ²μ¦
λνμμμ μ κ·Όμ±μ 보μ₯νκΈ° μν΄μλ μ² μ ν ν μ€νΈκ° νμμ μ λλ€. μ¬κΈ°μλ λ€μμ΄ ν¬ν¨λ©λλ€:
- μλ ν μ€νΈ: ν€λ³΄λμ μ€ν¬λ¦° 리λλ₯Ό μ¬μ©νμ¬ λνμμλ₯Ό νμνκ³ μνΈμμ©ν©λλ€.
- μλνλ ν μ€νΈ: μ κ·Όμ± ν μ€νΈ λꡬλ₯Ό μ¬μ©νμ¬ μ μ¬μ μΈ μ κ·Όμ± λ¬Έμ λ₯Ό μλ³ν©λλ€. Axe DevTools, WAVE, Lighthouseμ κ°μ λꡬλ μ κ·Όμ± κ²μ¬λ₯Ό μλννλ λ° λμμ΄ λ μ μμ΅λλ€.
- μ¬μ©μ ν μ€νΈ: μ₯μ κ° μλ κ°μΈκ³Ό ν¨κ» μ¬μ©μ ν μ€νΈλ₯Ό μννμ¬ λνμμμ μ¬μ©μ± λ° μ κ·Όμ±μ λν νΌλλ°±μ μμ§ν©λλ€.
WCAG μ€μ
μΉ μ½ν μΈ μ κ·Όμ± κ°μ΄λλΌμΈ(WCAG)μ μ€μνλ κ²μ μ κ·Ό κ°λ₯ν λνμμλ₯Ό λ§λλ λ° μ€μν©λλ€. κ΄λ ¨ WCAG μ±κ³΅ κΈ°μ€μ λ€μκ³Ό κ°μ΅λλ€:
- 1.1.1 ν μ€νΈκ° μλ μ½ν μΈ : ν μ€νΈκ° μλ μ½ν μΈ (μ: μ΄λ―Έμ§, μμ΄μ½)μ λν ν μ€νΈ λμμ μ 곡ν©λλ€.
- 1.3.1 μ 보 λ° κ΄κ³: μ 보μ κ΄κ³κ° λ§ν¬μ μ΄λ λ°μ΄ν° μμ±μ ν΅ν΄ μ λ¬λλλ‘ ν©λλ€.
- 1.4.3 λλΉ (μ΅μ): ν μ€νΈμ λ°°κ²½μ κ°μ μΆ©λΆν λλΉλ₯Ό 보μ₯ν©λλ€.
- 2.1.1 ν€λ³΄λ: λͺ¨λ κΈ°λ₯μ ν€λ³΄λμμ μ¬μ©ν μ μλλ‘ ν©λλ€.
- 2.4.3 ν¬μ»€μ€ μμ: ν¬μ»€μ€ μμκ° λ Όλ¦¬μ μ΄κ³ μ§κ΄μ μΈμ§ νμΈν©λλ€.
- 2.4.7 ν¬μ»€μ€ κ°μμ±: ν¬μ»€μ€ νμκΈ°κ° νμ 보μ΄λλ‘ ν©λλ€.
- 3.2.1 ν¬μ»€μ€ μ: μ»΄ν¬λνΈκ° μκΈ°μΉ μκ² ν¬μ»€μ€λ₯Ό λ°μ§ μλλ‘ ν©λλ€.
- 4.1.2 μ΄λ¦, μν , κ°: λͺ¨λ UI μ»΄ν¬λνΈμ μ΄λ¦, μν , κ°μ 보쑰 κΈ°μ μ΄ νλ‘κ·Έλλ° λ°©μμΌλ‘ κ²°μ ν μ μλλ‘ ν©λλ€.
μ μΈκ³μ κ³ λ € μ¬ν
μ μΈκ³ μ¬μ©μλ₯Ό μν λνμμλ₯Ό μ€κ³ν λ λ€μμ κ³ λ €νμμμ€:
- νμ§ν: λͺ¨λ ν μ€νΈ μ½ν μΈ λ₯Ό μ μ ν μΈμ΄λ‘ λ²μν©λλ€.
- κ΅μ ν: λνμμ λ μ΄μμμ΄ λ€λ₯Έ ν μ€νΈ λ°©ν₯ λ° λ¬Ένμ κ΄μ΅μ μ μ νκ² μ μνλλ‘ ν©λλ€. λ μ§ λ° μκ° νμ, ν΅ν κΈ°νΈ, μ£Όμ νμμ λ¬ΈνκΆμ λ°λΌ ν¬κ² λ€λ¦ λλ€.
- λ¬Ένμ λ―Όκ°μ±: νΉμ λ¬Ένμμ 곡격μ μ΄κ±°λ λΆμ μ ν μ μλ μ΄λ―Έμ§λ κΈ°νΈμ μ¬μ©μ νΌν©λλ€.
μμ: μΌλ³Έμμ μ¬μ©λλ λνμμλ λ―Έκ΅μμ μ¬μ©λλ λνμμμ λ€λ₯Έ λ μ§ νμ λ° μΈλ‘ ν μ€νΈ λ μ΄μμμ μμ©ν΄μΌ ν μ μμ΅λλ€.
κ²°λ‘
λͺ¨λ¬ λ° λΉλͺ¨λ¬ λνμμλ₯Ό ν¬ν¨νμ¬ μ κ·Ό κ°λ₯ν λνμμλ₯Ό λ§λλ κ²μ ν¬μ©μ μΈ UI λμμΈμ νμμ μΈ μΈ‘λ©΄μ λλ€. μ΄ κ°μ΄λμ μ€λͺ λ λͺ¨λ² μ¬λ‘λ₯Ό λ°λ₯΄κ³ , WCAG κ°μ΄λλΌμΈμ μ€μνλ©°, ARIA μμ±μ ν¨κ³Όμ μΌλ‘ νμ©ν¨μΌλ‘μ¨ κ°λ°μλ λͺ¨λ μ¬μ©μκ° λ₯λ ₯μ κ΄κ³μμ΄ λνμμμ μννκ³ ν¨κ³Όμ μΌλ‘ μνΈμμ©ν μ μλλ‘ λ³΄μ₯ν μ μμ΅λλ€. μ κ·Όμ±μ λ¨μν κ·μ μ€μμ κ΄ν κ²μ΄ μλλΌ λͺ¨λ μ¬λμ μν λ³΄λ€ ν¬μ©μ μ΄κ³ 곡νν μ¬μ©μ κ²½νμ λ§λλ κ²μμ κΈ°μ΅νμμμ€. μ₯μ κ° μλ μ¬μ©μλ‘λΆν° μ§μμ μΌλ‘ ν μ€νΈνκ³ νΌλλ°±μ μμ§νλ κ²μ μ κ·Όμ± λ¬Έμ λ₯Ό μλ³νκ³ ν΄κ²°νλ©° μ λ°μ μΈ μ¬μ©μ κ²½νμ κ°μ νλ λ° μ€μν©λλ€. μ κ·Όμ±μ μ°μ μν¨μΌλ‘μ¨ κΈ°λ₯μ μ΄κ³ μκ°μ μΌλ‘ λ§€λ ₯μ μΌ λΏλ§ μλλΌ μ μΈκ³ λͺ¨λ μ¬μ©μκ° μ¬μ©νκ³ μ¦κΈΈ μ μλ λνμμλ₯Ό λ§λ€ μ μμ΅λλ€.